/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

package es.us.gestortareas.bean;

import es.us.gestortareas.entity.Usuario;
import java.sql.SQLException;
import java.util.*;
import javax.ejb.Stateless;
import javax.persistence.EntityManager;
import javax.persistence.NoResultException;
import javax.persistence.PersistenceContext;
import javax.persistence.Query;

/**
 *
 * @author Karmenchue
 */
@Stateless
public class UsuarioFacade extends AbstractFacade<Usuario> {
    @PersistenceContext(unitName = "GestorTareas-ejbPU")
    private EntityManager em;

    @Override
    protected EntityManager getEntityManager() {
        return em;
    }

    public UsuarioFacade() {
        super(Usuario.class);
    }

    public Usuario findById(Integer id) {
        Usuario res = null;
        Query q = em.createNamedQuery("Usuario.findById");
        q.setParameter("id", id);
        try{
            res = (Usuario)q.getSingleResult();
        }catch(NoResultException e){
        }
           
        return res;
    }
    
    public Usuario findUser(String n, String p) {
        Usuario res = null;
        Query q = em.createNamedQuery("Usuario.findUser");
        q.setParameter("nombre", n);
        q.setParameter("password", p);
        try{
            res = (Usuario)q.getSingleResult();
        }catch(NoResultException e){
        }
           
        return res;
    } 
    
    public Usuario inserta(Usuario u){
        return update(u);
    }
    
    public Usuario update(Usuario u) {
        return em.merge(u);
    }
    
    public Usuario delete(Usuario u) {
        u.setEstado(0);
        return update(u);
    }    
    
    /*public int actualizarUsuario(Usuario u) {
        Query q = em.createQuery("UPDATE Usuario u SET u.nombre = :nombre,u.password=:pass WHERE u.id LIKE :id");
        q.setParameter("id", u.getId());
        q.setParameter("nombre", u.getNombre());
        q.setParameter("password", u.getPassword());
        em.getTransaction().begin();
        int n = q.executeUpdate();
        em.getTransaction().commit();
        return n;
    }*/
    
    /*public void insertar(String n, String p){
        em.getTransaction().begin();
        Usuario u = new Usuario();
        u.setNombre(n);
        u.setPassword(p);
        u.setEstado(1);
        em.persist(u);
        em.getTransaction().commit();
    }*/
    
    /*public int actualizarEstado(Integer id, int e) {
        Query q = em.createQuery("UPDATE Usuario u SET u.estado = :estado WHERE u.id LIKE :id");
        q.setParameter("id", id);
        q.setParameter("estado", e);
        em.getTransaction().begin();
        int n = q.executeUpdate();
        em.getTransaction().commit();
        return n;
    }*/
}
